package com.fausto.learnimprint.handler

import cn.hutool.core.date.DateUnit
import cn.hutool.core.date.DateUtil
import cn.hutool.core.date.LocalDateTimeUtil
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler
import org.apache.ibatis.reflection.MetaObject
import org.springframework.stereotype.Component

/**
 *      自动填充字段
 */
@Component
class IMetaObjectHandler: MetaObjectHandler {
    override fun insertFill(metaObject: MetaObject) {
        //当新增公告记录时,默认置顶字段为1,即不置顶
        this.setFieldValByName("announcementTop", 1, metaObject)
        //当新增邀请码时,将邀请码字段默认设置为0,即未使用
        this.setFieldValByName("codeState", 0, metaObject)
    }

    override fun updateFill(metaObject: MetaObject) {
        //当更新公告记录时,默认为时间字段赋予当前时间
        this.setFieldValByName("announcementTime", DateUtil.now(), metaObject)
    }
}